home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / redakcyjne / programy / Tlen 6.0.1.12 pl / tleninst60112.exe / sdk / TlenSources / plugin / plugin_file.h < prev    next >
C/C++ Source or Header  |  2006-08-30  |  5KB  |  144 lines

  1.  
  2.  
  3. // wysylanie plikow
  4.  
  5. #ifndef __TLEN_PLUGIN_FILE_H__
  6. #define __TLEN_PLUGIN_FILE_H__
  7.  
  8. #define TLEN_FILE_CALLFUNCTION          "Tlen/File/CallFunction"
  9.  
  10. // wysylanie plikow
  11. #define TLEN_FILE_SEND 1
  12. // wtyczka moze sie zarejestrowac jako menadzer transferu plikow, wtedy
  13. // bedzie otrzymywala zdarzenia zwiazane z przesylaniem plikow
  14. #define TLEN_FILE_REGISTER_MANAGER 2
  15. // wyrejestrowuje managera
  16. #define TLEN_FILE_UNREGISTER_MANAGER 3
  17. // anulowanie wysylania/odbierania pliku
  18. #define TLEN_FILE_CANCEL 4
  19. // ponawianie wysylania/odbierania pliku
  20. #define TLEN_FILE_RETRY 5
  21. // chwilowe zatrzymanie wysylania/odbierania pliku
  22. #define TLEN_FILE_STOP 6
  23.  
  24. // sluzy do pobierania katalogu w ktorym maja byc zapisane pliki
  25. // WPARAM wskaznik na zainicjalizowana strukture TlenFileDirectoryBuffer
  26. // zwraca zero jesli udalo sie skopiowac do bufora lub dlugisc sciezki w przypadku bledu
  27. #define TLEN_FILE_GET_DIRECTORY 16
  28.  
  29. // sluzy do sprawdzania czy nalezy zamknac okno po zakonczeniu przesylania plikow
  30. // zwraca 1 jesli nalezy zamknac to okno lub 0 jesli nie
  31. #define TLEN_FILE_CLOSE_WINDOW  17
  32.  
  33. // sluzy do sprawdzania czy ma odbierac automatycznie czy sie pytac
  34. // jesli 1 to automatycznie odbieraj od osob z listy jesli zero to zawsze pytaj
  35. #define TLEN_FILE_AUTOMATIC_ANSWER 18
  36.  
  37. // sluzy do sprawdzania czy nalezy odgrywac dzwiek przy przyjsciu pliku
  38. #define TLEN_FILE_PLAY_SOUND    19
  39.  
  40. // sluzy do sprawdzania czy zostaly ustawione niestandardowe opcje
  41. #define TLEN_FILE_NONSTANDARD_SETTINGS  20
  42.  
  43. // czy ma pokazywac liste plikow przed odebraniem?
  44. #define TLEN_FILE_SHOW_LIST 21
  45.  
  46.  
  47. typedef struct
  48. {
  49.  int structSize;
  50.  char * buffer;         /// wskaznik na bufor
  51.  int length;            /// dlugosc bufora
  52. } TlenFileDirectoryBuffer;
  53.  
  54. enum
  55. {
  56.   TLEN_FILE_EVENT_NONE = 0, // nic
  57.   TLEN_FILE_EVENT_CONNECTED, // polaczono
  58.   TLEN_FILE_EVENT_PROGRESS, // progress wysylania/odbierania pliku
  59.   TLEN_FILE_EVENT_DONE, // pomyslnie wyslano lub odebrano plik
  60.   TLEN_FILE_EVENT_ERROR, // blad podczas wysylania lub odbierania pliku
  61.   TLEN_FILE_EVENT_STARTED, // zaczelo sie wysylanie lub odbieranie pliku
  62.   // core wysyla w tym evencie informacje o pliku, nadawcy, odbiorcy itp
  63.   // wtyczka zwraca id, ktory nadala dla tego transferu
  64.   // te id jest pozniej uzywane do dalszej komunikacji
  65.   TLEN_FILE_EVENT_SHOW, // pokaz okno managera plikow na pierwszym planie
  66. };
  67.  
  68. #define TLEN_FILE_FLAG_SENDING 1 // wysylanie
  69.  
  70. typedef struct
  71. {
  72.   int structSize;
  73.   ttuint8 type; // typ eventu
  74.   ttuint32 userID; // id transferu, dla eventu STARTED wtyczka ustawia te id
  75.   // dla pozostalych eventow te pole identyfikuje dany transfer
  76. } TlenFileEvent;
  77.  
  78. // event mowiacy o postepie w wysylaniu / odbieraniu pliku
  79. typedef struct
  80. {
  81.   int structSize;
  82.   ttint64 bytes; // ile juz wyslano/odebrano pliku w bajtach
  83. } TlenFileEventProgress; // postep wysylania/odbierania pliku
  84.  
  85. // zdarzenie bledu
  86. typedef struct
  87. {
  88.   int structSize;
  89.   ttuint8 type; // typ bledu
  90.   char *message; // tresc bledu
  91. } TlenFileEventError;
  92.  
  93. // rozpoczecie wysylania lub odbierania pliku
  94. // flaga SENDING okresla czy jest to wysylanie czy odbieranie
  95. // w tym evencie wtyczka zwraca id transferu, ktore bedzie uzywane w dalszej
  96. // komunikacji wtyczka<->core
  97. typedef struct
  98. {
  99.   int structSize; // wielko£µ struktury w bajtach
  100.   ttuint16 flags; // flagi
  101.   char *protocolID; // id protokolu np PROTOCOL_ID_TLEN, PROTOCOL_ID_GG
  102.   char *sender; // nadawca
  103.   char *receiver; // odbiorca
  104.   char *path; // sciezka do pliku
  105.   char *outname; // nazwa pliku docelowego
  106.   ttint64 offset; // przesuniecie w pliku, od ktorego zaczynamy wysylac
  107.   ttint64 size; // wielkosc pliku
  108. } TlenFileEventStarted;
  109.  
  110. typedef int (*TlenFileCallback) (TlenFileEvent *event, void *data);
  111.  
  112. // struktura opisujaca wysylany plik
  113. typedef struct
  114. {
  115.   int structSize; //wielko£µ struktury w bajtach
  116.   char *protocolID; // id protokolu np PROTOCOL_ID_TLEN, PROTOCOL_ID_GG
  117.   char *sender; // nadawca
  118.   char *receiver; // odbiorca
  119.   char *path; // sciezka do pliku
  120.   char *outname; // nazwa pliku docelowego
  121.   ttint64 offset; // przesuniecie w pliku, od ktorego zaczynamy wysylac
  122.   TlenFileCallback callback; // callback uruchamiany w przypadku roznych zdarzen
  123. } TlenFileSend;
  124.  
  125. // struktura opisujaca menadzera transferow
  126. // do funkcji register i unregister
  127. typedef struct
  128. {
  129.   int structSize;
  130.   TlenFileCallback callback; // funkcja obslugi zdarzen
  131. } TlenFileRegisterManager;
  132.  
  133. // struktura do funkcji cancel, retry i stop
  134. typedef struct
  135. {
  136.   int structSize;
  137.   ttuint32 userID; // id transferu
  138.   char *protocolID; 
  139. } TlenFileTransfer;
  140.  
  141.  
  142. #endif
  143.  
  144.